#ifndef BCORTHOGONALFLOWVELOCITYVELOCITY_HPP
#define BCORTHOGONALFLOWVELOCITYVELOCITY_HPP

#include "boundaryCondition.hpp"

namespace hms {

/**
 * @brief Constant orthogonal flow velocity. Using a positive value
 * indicates inflow, a negative value indicates outflow.
 * 
 */
template<typename MeshType>
class OrthogonalFlowVelocity_velocity : public BoundaryCondition<MeshType>
{
public:
	using BaseType = BoundaryCondition<MeshType>;
	using Type = typename BaseType::Type;
	using BaseType::field;
	using BaseType::patch;

private: 
	scalar m_vBoundary;

public:
	OrthogonalFlowVelocity_velocity() = default;

	OrthogonalFlowVelocity_velocity(
		Field<MeshType>& vField,
		const BoundaryPatch&,
		scalar vBoundary
	);

	virtual void update() const override {}

	auto vBoundary() const -> scalar;
	void vBoundary(scalar);
};

} // end namespace hms

#endif

